[bits 32]
section .text

global outb
outb:
    push ebp
    mov ebp, esp
    mov dx, [ebp + 8]
    mov al, [ebp + 12]
    out dx, al
    nop
    nop
    leave
    ret

global outw
outw:
    push ebp
    mov ebp, esp
    mov dx, [ebp + 8]
    mov ax, [ebp + 12]
    out dx, ax
    nop
    nop
    leave
    ret

global outl
outl:
    push ebp
    mov ebp, esp
    mov dx, [ebp + 8]
    mov eax, [ebp + 12]
    out dx, eax
    nop
    nop
    leave
    ret

global inb
inb:
    push ebp
    mov ebp, esp
    mov dx, [ebp + 8]
    in al, dx
    nop
    nop
    leave
    ret

global inw
inw:
    push ebp
    mov ebp, esp
    mov dx, [ebp + 8]
    in ax, dx
    nop
    nop
    leave
    ret

global inl
inl:
    push ebp
    mov ebp, esp
    mov dx, [ebp + 8]
    in eax, dx
    nop
    nop
    leave
    ret